<?php

namespace common\models\task;

use Yii;

/**
 * This is the model class for table "{{%task}}".
 *
 * @property int $id
 * @property int $project_id 项目ID
 * @property string $title 任务标题
 * @property int $start_time 任务开始时间【不能小于当前时间】
 * @property int $end_time 任务结束时间
 * @property int $callback_num 已回访人数
 * @property int $total_num 患者总人数
 * @property int $status 状态【-1删除、0未开始、1进行中(进行中包含 status=0 && start_time <= 当前时间 <= end_time)、2已延期（延期包含 status=1 && end_time < 当前时间）、3已完成、4已关闭】
 * @property string|null $remark 备注
 * @property string $reason 关闭原因
 * @property int $created_member_id 创建人
 * @property int $created_at 创建时间
 * @property int $updated_at 更新时间
 */
class Task extends \common\models\BaseModel
{
    const STATUS_DELETE = -1;// 已删除
    const STATUS_WAIT = 0;// 未开始
    const STATUS_START = 1;// 进行中
    const STATUS_DELAY = 2;// 已延期
    const STATUS_SUCCESS = 3;// 已完成
    const STATUS_CLOSE = 4;// 已关闭

    public static $statuss = [
        self::STATUS_DELETE => '已删除',
        self::STATUS_WAIT => '未开始',
        self::STATUS_START => '进行中',
        self::STATUS_DELAY => '已延期',
        self::STATUS_SUCCESS => '已完成',
        self::STATUS_CLOSE => '已关闭',
    ];

    /**
     * {@inheritdoc}
     */
    public static function tableName()
    {
        return '{{%task}}';
    }

    /**
     * {@inheritdoc}
     */
    public function rules()
    {
        return [
            [['project_id', 'start_time', 'end_time', 'callback_num', 'total_num', 'status', 'created_member_id', 'created_at', 'updated_at'], 'integer'],
            [['remark'], 'string'],
            [['title'], 'string', 'max' => 32],
            [['reason'], 'string', 'max' => 256],
        ];
    }

    /**
     * {@inheritdoc}
     */
    public function attributeLabels()
    {
        return [
            'id' => 'ID',
            'project_id' => '项目ID',
            'title' => '任务标题',
            'start_time' => '任务开始时间【不能小于当前时间】',
            'end_time' => '任务结束时间',
            'callback_num' => '已回访人数',
            'total_num' => '患者总人数',
            'status' => '状态【-1删除、0未开始、1进行中(进行中包含 status=0 && start_time <= 当前时间 <= end_time)、2已延期（延期包含 status=1 && end_time < 当前时间）、3已完成、4已关闭】',
            'remark' => '备注',
            'reason' => '关闭原因',
            'created_member_id' => '创建人',
            'created_at' => '创建时间',
            'updated_at' => '更新时间',
        ];
    }
}
